<!doctype html>
<html ng-app>
  <head>
    <script src="angular.js"></script>
    <script language="javascript">
	function Controller($scope) {
	  $scope.master= {};

	  $scope.update = function(user) {
		$scope.master= angular.copy(user);
	  };

	  $scope.reset = function() {
		$scope.user = angular.copy($scope.master);
	  };

	  $scope.reset();
	}
    </script>
  </head>
  <body>
    <div ng-controller="Controller">
      <form novalidate class="css-form">
        Name:
          <input type="text" ng-model="user.name" required /><br />
        E-mail: <input type="email" ng-model="user.email" required /><br />
        Gender: <input type="radio" ng-model="user.gender" value="male" />male
        <input type="radio" ng-model="user.gender" value="female" />female<br />
        <button ng-click="reset()">RESET</button>
        <button ng-click="update(user)">SAVE</button>
      </form>
      <pre>form = {{user | json}}</pre>
      <pre>master = {{master | json}}</pre>
    </div>

    <style type="text/css">
      .css-form input.ng-invalid.ng-dirty {
        background-color: #FA787E;
      }

      .css-form input.ng-valid.ng-dirty {
        background-color: #78FA89;
      }
    </style>
  </body>
</html>
